iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0

前言

昨天我們進行RAG的介紹、使用RAG的步驟與優劣勢,那麼今天我們將會介紹我們在LangChain使用RAG的詳細步驟,畢竟會需要外部資料源,我們之後會從資料的部分開始進行說明。


正文

預先建立的資料庫

https://ithelp.ithome.com.tw/upload/images/20240907/20168697uA2vMhKdn6.png

  1. 載入:首先我們需要將準備好的資料進行載入,資料源是txt、pdf、csv、網頁。

  1. 分割:文字分割器將大文字分割Documents成更小的文字區塊,傳遞到模型會很有用,因為大塊更難搜尋並且不適合模型的上下文的檢索,另外過小的話,對於輸出的品質會有明顯的斷詞錯誤,要考慮適當的切割大小。

  1. Store:我們需要某個地方來儲存和索引我們的分割,以便以後可以搜尋它們。通常轉成向量並且使用向量資料庫儲存。

為什麼要分割後的文字區塊需要轉成向量再存入向量資料庫?

轉成向量後,同樣保持著原本的語意資訊,並且使用者進行查詢後,將使用者查詢轉成向量,可以直接在向量資料庫中進行語意相似度分析,若都是純文字,則進行關鍵字比對,向量更高效之外,也更加精準。

檢索和生成

https://ithelp.ithome.com.tw/upload/images/20240907/20168697kh0ThFHrtZ.png

  1. Retrieve :從使用者輸入查詢,先將使用者的查詢轉換成向量,再使用Retriever從資料庫中利用相似度分析,擷取相關的文字片段。

  1. 生成:將包含問題和檢索到的相關資料的提示傳送至LLM並產生回答給予使用者。

參考資料

https://python.langchain.com/v0.2/docs/tutorials/rag/


明天我們會先以網頁當作第一個資料源,並且使用Chroma開源的免費向量資料庫,並且進行RAG的示範案例


上一篇
day7 RAG 的力量:將檢索與生成融合提升LLM的回應準確性
下一篇
day9 打造智能新聞分析系統:從資料抓取到GenAI智慧回應
系列文
智能雲端架構圖生成:結合LangChain&LangGrpah與Rag的創新應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言